/* 
 * File:   material.cpp
 * Author: chaterolas
 * 
 * Created on 24 de junio de 2009, 07:36 PM
 */

#include "material.h"

/**
 * Crea un nuevo material con los paramentros deseados.
 * @param color (color del material)
 * @param specular (reflectancia de luz especular del material)
 * @param diffuse (Reflectancia de luz difusa del material)
 * @param spechard (Dureza del especular del material)
 * @param reflect (La relfectividad de espejo del material)
 * @param ior (Indice de refraccion del material)
 */
Material::Material(double cR, double cG, double cB, double specular,
        double diffuse, double spechard, double reflect, double refract,
        double ior) {
    this->color = new Color(cR, cG, cB);
    this->specular = specular;
    this->spechard = spechard;
    this->reflect = reflect;
    this->diffuse = diffuse;
    this->refract = refract;
    this->ior = ior;
}

/**
 * Crea una nuevo material apartir de un amterial ya creado
 * @param orig (Referencia de la matriz a copiar)
 */
Material::Material(const Material& orig) {
    color = new Color(orig.color->v->coor[0], orig.color->v->coor[1],
            orig.color->v->coor[2]);
    specular = orig.specular;
    spechard = orig.spechard;
    reflect = orig.reflect;
    diffuse = orig.diffuse;
    refract = orig.refract;
    ior = orig.ior;
}

/**
 * Destruye los componentes apuntador del material
 */
Material::~Material() {
    delete color;
}

